<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
	</body>
</html>
<script type="text/javascript">
	//第一种情况,全局
	// console.log(this)
	
	//第二种情况,函数声明
	// var bj=10;
	// function add(){
	// 		var bj=20;
	// 		console.log(this);
	// 		console.log(this.bj);
	// 		console.log(bj);
	// 		console.log(this.bj+bj);
	// }
	// add();
	// window.add();
	
	// 第三种情况,函数表达式
	// var bj=10;
	// var zjj=function(){
	// 		var bj=30;
	// 		console.log(this);
	// 		console.log(this.bj);
	// 		console.log(bj);
	// 		console.log(this.bj+bj);
	// }
	// console.log(typeof zjj);//function
	// zjj();
	// window.zjj();
	
	//第四种情况,函数作为对象的表达式-1
	// var bj=10;
	// var obj={
	// 		name:"八戒",
	// 		age:"500",
	// 		say:function(){
	// 				var bj=40;
	// 				console.log(this);
	// 				console.log(this.bj);
	// 				console.log(this.name);
	// 		}
	// }
	// obj.say();
	// window.obj.say();
	
	//第五种情况，函数作为对象的表达式-2
	// var bj=10;
	// var obj={
	// 		name:"八戒",
	// 		age:500,
	// 		say:function(){
	// 				console.log(this);
	// 				console.log(this.bj);
	// 				console.log(this.name)
	// 		},
	// 		action:{
	// 				name:"悟空",
	// 				age:1000,
	// 				say:function(){
	// 						console.log(this);
	// 						console.log(this.bj);
	// 						console.log(this.name)
	// 				},
	// 				play:{
	// 					money:100,
	// 					said:function(){
	// 						console.log(this);
	// 						console.log(this.bj);
	// 						console.log(this.money+"块都不给我")
	// 					}
	// 				}
	// 		}
	// }
	// obj.say();
	// obj.action.say();
	// obj.action.play.said();
	// window.obj.action.say();
	
	//第六种情况，函数作为对象的表达式-3
	// var bj=10;
	// var obj={
	// 		name:"八戒",
	// 		age:500,
	// 		say:function(){
	// 				console.log(this);
	// 				console.log(this.bj);
	// 				console.log(this.name)
	// 				function wk(){
	// 						console.log(this);
	// 						console.log(this.bj);
	// 						console.log(this.name);
	// 				}
	// 				wk();        
	// 		},
	// }
	// obj.say();
	
	//第七种情况，函数作为对象的表达式-4
	// var bj=10;
	// var obj={
	// 		name:"八戒",
	// 		age:500,
	// 		say:function(){
	// 				return function(){
	// 						console.log(this);
	// 						console.log(this.bj);
	// 						console.log(this.age);
	// 				}
	// 		}
	// }
	// obj.say()();
	//    var elseObj=obj.say();
//    elseObj();

	//第八种情况,构造函数中的this
	// var bj=10;
	// function Add(){
	// 		var bj=20;
	// 		this.bj=30;
	// 		this.say=function(){
	// 				console.log(this);
	// 				console.log(this.bj);
	// 				console.log(bj)
	// 		}
	// 		console.log(this) ;
	// }
	// var obj=new Add();
	// console.log(typeof obj);
	// obj.say();
	
	//第九种情况，原型函数中的this
	// var bj=10;
	// function Add(){
	// 　　console.log(this);
	// };
	// Add.prototype.bj=10;
	// Add.prototype.say=function(){
	// 		console.log(this);
	// 		return function(){
	// 				console.log(this);
	// 		}
	// }
	// var obj=new Add();
	// obj.say()();
</script>